// pages/shop-cart/shop-cart.js
const data = require('./shuju')
Page({

  /**
   * 页面的初始数据
   */
  data: data,

  /* 加数量 */
  jia(e){
    /* 接收传过来的参数 */
    const index = e.currentTarget.dataset.index;
    /* 方便使用数据 */
    let list = this.data.list; 
    /* 方便使用数据 */
    let sum = list[index].sum;
    /* 数量++ */
    sum++;
    /* 让数量回到数据 */
    list[index].sum = sum;
    this.setData({
      /* 改变数据 */
      list : list
    });
    /* 调用计算总价 */
    this.getTotalPrice();
  },


  /* 减数量 */
  jian(e){
    /* 接收传过来的参数 */
    const index = e.currentTarget.dataset.index;
    /* 方便使用数据 */
    let list = this.data.list;
    /* 方便使用数据 */
    let sum = list[index].sum;
    /* 判断数量是否小于等于1 */
    if(sum <= 1){
      return false
    }
    /* 数量-- */
    sum--;
    /* 让数量回到数据 */
    list[index].sum = sum;
    /* 改变数据 */
    this.setData({
      list : list
    });
    /* 调用计算总价 */
    this.getTotalPrice();
  },


  /* 自定义数量 */
  sum(e){
    /* 接收传过来的参数 */
    const index = e.currentTarget.dataset.index;
    /* 方便使用数据 */
    let list = this.data.list;
    /* 方便使用数据 */
    let sum = list[index].sum;
    /* 使用自定义的数量 */
    sum = e.detail.value;
    /* 让数量回到数据 */
    list[index].sum = sum;
    this.setData({
      list : list
    });
    /* 调用计算总价 */
    this.getTotalPrice();
  },

  /* 总价格 */
  getTotalPrice(){
    /* 得到购物车列表 */
    let list = this.data.list;
    /* 定义一个暂时的价格 */
    let total = 0;
    /* 循环得到每个数据 */
    for(let i = 0; i < list.length; i++){
      /* 判断选中才会算价格 */
      if(list[i].selected){
        total += list[i].sum * list[i].price;
      }
    }
    /* 整理数据 */
    this.setData({
      list : list,
      totalPrice : total.toFixed(2)
    })
  },


  /* 删除商品 */
  del(e){
    /* 接收传过来的参数 */
    const index = e.currentTarget.dataset.index;
    /* 方便使用数据 */
    let list = this.data.list;
    /* 删除商品 */
    list.splice(index,1);
    this.setData({
      list : list
    });
    /* 判断购物车是否为空 */
    /* 如果为空 */
    /* !array.length只要不是空array,都是false,执行else */
    if(!list.length){
      this.setData({
        hasList:false
      })
    }else{
      this.getTotalPrice();
    }
  },


  /* 是否选中商品 */
  sel(e){
    /* 接收传来的参数 */
    const index = e.currentTarget.dataset.index;
    /* 方便使用数据 */
    let list = this.data.list;
    /* 方便使用数据 */
    let sel = list[index].selected;
    /* 点击切换状态 */
    sel = !sel;
    /* 回到数据 */
    list[index].selected = sel;
    /* 更改 */
    this.setData({
      list : list,
      selectAll : false
    });
    /* 调用计算总价 */
    this.getTotalPrice();
    // this.getTotalPrice();
    // wx.setStorage({
    //   key:"payOk",
    //   data:""
    // })
  },

  
  /* 全选 */
  selectAll(){
    /* 获取全选状态值 */
    let flag = this.data.selectAll;
    /* 让全选等于全选或全不选 */
    flag = !flag;
    /* 获取所有商品 */
    let list = this.data.list;
    /* 循环改变所有商品状态 */
    for(let i = 0; i < list.length; i++){
      list[i].selected = flag;
    }
    
    /* 改变 */
    this.setData({
      selectAll : flag,
      list : list
    });
    /* 调用计算总价 */
    this.getTotalPrice();
  },

  /* 传递数据到下个页面 */
  chuanzhi(){
    /* 方便使用数据 */
    let list = this.data.list;
    /* 传数据过去之前先清空一下之前的数据在用新的传递 */
    this.data.sureList = []

    
    for(let i = 0; i < list.length; i++){
      /* 选中了的才添加 */
      if(list[i].selected){
        /* 添加这些选中东西 */
        this.data.sureList.push(list[i]);
      }
    }
    /* 因为上面把选中了的数据push到了新数组里，判断如果是空数组就阻止 */
    if(!this.data.sureList.length){
      wx.showToast({
        title:'未选中商品哟~',
        image:'/images/sxl-img/6_03.png',
        duration:2000
      })
      return false;
    }
    
    this.setData({
      sureList : this.data.sureList
    })
    /* 转换成字符串在传过去 */
    let str = JSON.stringify(this.data.sureList)
    wx.navigateTo({
      url:"./shop-but/shop-but?sureList="+str
    })

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // this.setData({
    //   newList:2,
    // // })
    var _this = this;
    wx.getStorage({
      key: 'cart',
      success: function(res) {
    
         console.log(res.data)
          let newList = [];
         for(var i=0;i<res.data.length;i++){
              newList.unshift(res.data[i])
         }

         _this.setData({
            list:newList
         })
      } 
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    /* 如果有数据 */
    if(this.data.list.length){
      this.setData({
        hasList:true
      })
    }
    this.getTotalPrice();
    /* 获得setStorage的数据 */
    wx.getStorage({
      key:"payOk",
      success:(res)=>{
       // console.log(res.data)
       /* 循环传过来的数据的长度 */
        for(let i = 0; i < res.data.length; i++){
          /* 循环原数组的长度 */
          for(let j=0;j<this.data.list.length;j++){
            /* 判断两个数据里的相等值 */
            if(this.data.list[j].name == res.data[i].name){
              /* 根据走进来的值来删除对应的对象 */
               this.data.list.splice(j,1);
            }
            /* 清空一下别的页面发送来的缓存 */
            wx.setStorage({
              key:"payOk",
              data:""
            });
            /* 显示到页面上的数组 */
            this.setData({
                list:this.data.list,
            });
          };
        }; 
        /* 如果数组是空 */
        if(!this.data.list.length){
          this.setData({
            hasList : false
          })
        }
      }
    });
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
  
  }
})